package deposito.dao;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import deposito.dto.Parametro;
import deposito.entities.ParametroEntity;


@Stateless
public class ParametroDAO implements IParametroDAO {
	
	//Entity Manager
	@PersistenceContext(unitName="IA_DS")
	private EntityManager manager;
	
    //modificarStock
    public void modificarParametro(Parametro parametro){
    	manager.merge(toEntity(parametro));
    }
    
    
    //getParametros
    @SuppressWarnings("unchecked")
	public List<Parametro> getParametros(){
    	List<Parametro> parametros = new ArrayList<Parametro>();
    	
    	String query = "from ParametroEntity pE";
    	Query q = manager.createQuery(query);
    	
    	List<ParametroEntity> parametrosE = (List<ParametroEntity>) q.getResultList();
    	if(parametrosE != null){
    		for(ParametroEntity elemE: parametrosE)
    			parametros.add(elemE.toDTO());
    	}
    	return parametros;
    }
    
    //************************************//
    
	//toEntity
	private ParametroEntity toEntity(Parametro parametro){
		ParametroEntity pE = new ParametroEntity();
		pE.setId(parametro.getId());
		pE.setIdModulo(parametro.getIdModulo());
		pE.setActivo(parametro.getActivo());
		pE.setTipoModulo(parametro.getTipoModulo());
		pE.setNombreModulo(parametro.getNombreModulo());
		pE.setTipoServicio(parametro.getTipoServicio());
		pE.setNombreServicio(parametro.getNombreServicio());
		pE.setDireccion(parametro.getDireccion());
		pE.setPuerto(parametro.getPuerto());
		pE.setUsuario(parametro.getUsuario());
		pE.setPassword(parametro.getPassword());
		return(pE);
	}

}

